# 导入
from wxauto import WeChat
import time

from llm_chat import llm_response, remove_edge_equals, llm_response_with_weather, llm_response_with_weibo

# 获取微信窗口对象
wx = WeChat()
# 输出 > 初始化成功，获取到已登录窗口：xxxx

# 设置监听列表
listen_list = [
    'A爆 Leonie',
    # 'Bboy-SoSo 上海虹口',
    # '爸爸妈妈和盛开',
    '清风组',
    # '周宁、刘静',
    # '杨冀豫 大块头',
    '530',
]
# 循环添加监听对象
for i in listen_list:
    # wx.SendMsg(msg='我是阿开的智能助手（v1.1）,现在我支持了天气查询：\n你可以问我：ak上海天气怎么样？\n如果你的消息前缀为“AK”，那么我会回答你。', who=i)
    wx.AddListenChat(who=i, savepic=True)

# wx.AddListenChat(who='A爆 Leonie', savepic=True)

# 持续监听消息，并且收到消息后回复“收到”
wait = 1  # 设置1秒查看一次是否有新消息
while True:
    msgs = wx.GetListenMessage()
    for chat in msgs:
        who = chat.who  # 获取聊天窗口名（人或群名）
        one_msgs = msgs.get(chat)  # 获取消息内容
        # 回复收到
        for msg in one_msgs:
            msgtype = msg.type  # 获取消息类型
            content = msg.content  # 获取消息内容，字符串类型的消息内容
            print(f'【{who}】{msgtype}：{content}')
            if content.lower().startswith("你好阿开"):
                answer=llm_response_with_weibo(remove_edge_equals(content,"你好阿开"))
                # print(answer)
                # ===================================================
                # 处理消息逻辑（如果有）
                #
                # 处理消息内容的逻辑每个人都不同，按自己想法写就好了，这里不写了
                #
                # ===================================================

                # 如果是好友发来的消息（即非系统消息等），则回复收到
                # if msgtype == 'friend':
                chat.SendMsg(answer)  # 回复收到
            # elif content.lower().startswith("AK"):
            #     answer=llm_response_with_weather(remove_edge_equals(content,"AK"))
            #     # print(answer)
            #     # ===================================================
            #     # 处理消息逻辑（如果有）
            #     #
            #     # 处理消息内容的逻辑每个人都不同，按自己想法写就好了，这里不写了
            #     #
            #     # ===================================================
            #
            #     # 如果是好友发来的消息（即非系统消息等），则回复收到
            #     if msgtype == 'friend':
            #         chat.SendMsg(answer)  # 回复收到
    time.sleep(wait)